package com.ziyia.activitylifecycletest;

import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;

public class MainActivity extends BaseActivity {
    private static final String TAG = "MainActivity";
    private Button startNormalActivity, startDialogActivity;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        ActivityCollector.addActivity(this);

//        Log.d(TAG, "onCreate: 它会在Activity第一次创建的时候调用，我们可以在这个方法完成：加载布局，绑定事件等");
        setContentView(R.layout.activity_main);
        Log.d(TAG, String.valueOf(getTaskId()));

        Log.d(TAG, "onCreate: ");
        startNormalActivity = findViewById(R.id.startNormalActivity);
        startDialogActivity = findViewById(R.id.startDialogActivity);


        startNormalActivity.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intent = new Intent(MainActivity.this, NormalActivity.class);
                startActivity(intent);
            }
        });

        startDialogActivity.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intent = new Intent(MainActivity.this, DialogActivity.class);
                startActivity(intent);
            }
        });
    }

    @Override
    protected void onStart() {
        super.onStart();
        Log.d(TAG, "onStart: ");
//        Log.d(TAG, "onStart: Activity不可见变为可见的时候被调用");
    }

    @Override
    protected void onResume() {
        super.onResume();
        Log.d(TAG, "onResume: ");
//        Log.d(TAG, "onResume: Activity准备好和用户进行交到的时候调，该状态下的Activity一定处理栈顶，并且处于运行状态");
    }

    @Override
    protected void onPause() {
        super.onPause();
        Log.d(TAG, "onPause: ");
//        Log.d(TAG, "onPause: " +
//                "系统准备去启动或者恢复另一个Activity的时候调用，" +
//                "我们通常在这个时候将一些消耗CPU的资源释放掉，以及在这个时候保存一些关键数据，" +
//                "这个方法的执行速度一定要快，不然" +
//                "会影响到新的栈顶Activity的使用");
    }

    @Override
    protected void onStop() {
        super.onStop();
        Log.d(TAG, "onStop: ");
//        Log.d(TAG, "onStop: " +
//                "Activity完全不可见的时候调用，它和onPause方法区别在于如果启动的新Activity是一个对话框式的Activity，" +
//                "那么onPause方法将会得到执行，而onStop不会执行");
    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
        ActivityCollector.removeActivity(this);
        Log.d(TAG, "onDestroy: ");
//        Log.d(TAG, "onDestroy: 在Activity销毁前调用，之后的Activity将变为销毁状态");
    }

    @Override
    protected void onRestart() {
        super.onRestart();
        Log.d(TAG, "onRestart: ");
//        Log.d(TAG, "onRestart: Activity由停止状态变为可执行状态之前调用，也就是Activity被重新启动了");
    }
}

